# -*- coding: utf-8 -*-
from django.db import models

from comum.models import Estacao, Setor

class Equipe(models.Model):
    nome = models.CharField(u'Nome', max_length=100, unique=True)
    
    class Meta:
        verbose_name = u'Equipe'
        verbose_name_plural = u'Equipes'
    
    def __unicode__(self):
        return '%s' % self.nome

class ServicoStatus(models.Model):
    nome = models.CharField(u'Nome', max_length=100, unique=True)

    class Meta:
        verbose_name = u'Status do Serviço'
        verbose_name_plural = u'Status do Serviço'
    
    def __unicode__(self):
        return '%s' % self.nome

class ServicoInterno(models.Model):
    status = models.ForeignKey(ServicoStatus)
    setor = models.ForeignKey(Setor)
    numero = models.CharField(u'Número', max_length=100, unique=True, null=True, blank=True)
    estacao = models.ForeignKey(Estacao)
    data_emissao = models.DateField(u'Data de Emissão')
    desc_defeito = models.TextField(u'Descrição do Defeito')
    data_inicio = models.DateField(u'Data de Início', null=True, blank=True)
    hxh_previsto = models.CharField(u'Hxh Previsto', max_length=10, null=True, blank=True)
    equipe = models.ForeignKey(Equipe)
    data_conclusao = models.DateField(u'Data de Conclusão', null=True, blank=True)
    hxh_real = models.CharField(u'Hxh Real', max_length=10, null=True, blank=True)
    n_patrimonio = models.IntegerField(u'Número Patrimônio', null=True, blank=True)
    desc_reparo = models.TextField(u'Descrição do Reparo', null=True, blank=True)
    
    class Meta:
        verbose_name = u'Serviço Interno'
        verbose_name_plural = u'Serviços Internos'
    
    def __unicode__(self):
        return '%s' % self.numero
    
    def get_materiais(self): 
        return self.materialservico_set.order_by('-id')
    
    def get_equipes(self):
        return self.equipeexecutante_set.order_by('-id')
    
    def get_data_emissao(self):
        return self.data_emissao.strftime("%d/%m/%Y")

class MaterialServico(models.Model):
    servico = models.ForeignKey(ServicoInterno)
    descricao = models.CharField(u'Descrição', max_length=250)
    cod_material = models.CharField(u'Código do Material', max_length=100)
    quantidade = models.CharField(u'Quantidade', max_length=100)
    unidade = models.CharField(u'Unidade', max_length=100)
    
    class Meta:
        verbose_name = u'Material do Serviço'
        verbose_name_plural = u'Materiais do Serviço'
    
    def __unicode__(self):
        return '%s (%s)' % (self.descricao, self.cod_material)
    
class EquipeExecutante(models.Model):
    servico = models.ForeignKey(ServicoInterno)
    nome = models.CharField(u'Nome', max_length=250)
    data = models.DateField(u'Data')
    mhora_inicio = models.TimeField('Hora Inicio', null=True, blank=True)
    mhora_termino = models.TimeField('Hora Termino', null=True, blank=True)
    thora_inicio = models.TimeField('Hora Inicio', null=True, blank=True)
    thora_termino = models.TimeField('Hora Termino', null=True, blank=True)
    hora_total = models.TimeField('Horas Total', null=True, blank=True)
    xhora_inicio = models.TimeField('Hora Inicio', null=True, blank=True)
    xhora_termino = models.TimeField('Hora Termino', null=True, blank=True)
    xhora_total = models.TimeField('Horas Total', null=True, blank=True)
    
    class Meta:
        verbose_name = u'Equipe Executante'
        verbose_name_plural = u'Equipes Executantes'
    
    def __unicode__(self):
        return '%s' % self.nome
